home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 001-025 / disk_023 / ver30 / tty / intuition / ttydef.h < prev    next >
C/C++ Source or Header  |  1992-05-06  |  2KB  |  92 lines

  1. /*
  2.  * Name:    MicroEMACS
  3.  *        Amiga console device virtual terminal header file
  4.  * Version:    31
  5.  * Last edit:    20-Apr-86
  6.  * Created:    20-Apr-86 ...!ihnp4!seismo!ut-sally!ut-ngp!mic
  7.  *            Add Intuition menu support
  8.  *
  9.  */
  10. #define    GOSLING    1            /* Compile in fancy display.    */
  11. #define    MEMMAP    0            /* Not memory mapped video.    */
  12.  
  13. #define    NROW    23            /* Rows.            */
  14. #define    NCOL    77            /* Columns (AmigaDOS)        */
  15.  
  16. /*
  17.  * Special keys for the default Amiga console device keymap.
  18.  * Function key codes are in the form <CSI>v~
  19.  * where v is a 1 or 2-digit code between 0 and 19,
  20.  * so they comprise the first 20 entries in the key
  21.  * table.  The next 12 entries are for the help and
  22.  * arrow keys.  There is no shifted value for the
  23.  * HELP key.
  24.  */
  25. #define    KF1    K01
  26. #define    KF2    K02
  27. #define    KF3    K03
  28. #define    KF4    K04
  29. #define    KF5    K05
  30. #define    KF6    K06
  31. #define    KF7    K07
  32. #define    KF8    K08
  33. #define    KF9    K09
  34. #define    KF10    K0A
  35. #define    KSF1    K0B
  36. #define    KSF2    K0C
  37. #define    KSF3    K0D
  38. #define    KSF4    K0E
  39. #define    KSF5    K0F
  40. #define    KSF6    K10
  41. #define    KSF7    K11
  42. #define    KSF8    K12
  43. #define    KSF9    K13
  44. #define    KSF10    K14
  45. #define    KUP    K15
  46. #define    KSUP    K16
  47. #define    KDOWN    K17
  48. #define    KSDOWN    K18
  49. #define    KLEFT    K19
  50. #define    KSLEFT    K1A
  51. #define    KRIGHT    K1B
  52. #define    KSRIGHT    K1C
  53. #define    KHELP    K1D
  54.  
  55. /* The 'menu' key doesn't really appear on the
  56.  * Amiga keyboard.  When ttgetc() sees a menu
  57.  * event, it saves the menu number and item,
  58.  * then stuffs the sequence for KMENU into
  59.  * the input buffer.
  60.  */
  61. #define    KMENU    K1E
  62.  
  63. /*
  64.  * Similarly, this is the way we shoehorn the
  65.  * mouse into the input stream, using the last
  66.  * function key value for this purpose.
  67.  */
  68. #define    KMOUSE    K1F
  69.  
  70. /*
  71.  * Intuition menu interface.  Each set of menu items
  72.  * kept in a table of MenuBinding structures, which
  73.  * is in turn kept in a table of MenuInfo structures.
  74.  *
  75.  * These tables are indexed via the menu and item
  76.  * numbers to find the internal extended name of
  77.  * the function associated with a certain item.
  78.  */
  79. struct MenuBinding {
  80.     char *Command;
  81.     char *Binding;
  82. };
  83.  
  84. struct MenuInfo {
  85.     char *Name;            /* name of menu            */
  86.     short NumItems;            /* # of items            */
  87.     short MenuWidth;        /* width, in CHARACTERS        */
  88.     struct MenuBinding *Items;    /* item name, internal binding    */
  89. };
  90.  
  91. #define NITEMS(arr) (sizeof(arr) / (sizeof(arr[0])))
  92.